
// 获取所有input框
var inputs = document.getElementsByTagName('input');
// 为每个input框添加失去焦点事件
for (var i = 0; i < inputs.length; ++i) {
    inputs[i].onblur = inputBlur;
}
function regBtn() {
    //获取input组的值，来判断是否符合正则表达式中的值和判断是否为空来实现是否允许提交
    var username = document.getElementById("username").value;
    var pwd = document.getElementById("pwd").value;
    var repwd = document.getElementById("repwd").value;
    var tel = document.getElementById("tel").value;
    var email = document.getElementById("email").value;
    var regBtn = document.getElementById("regBtn");
    var msg = document.getElementById("table").getElementsByTagName("div");
    var flag = 1;
    if (!username || !pwd || !repwd || !tel || !email) {
        alert("数据不能为空!")
    }else {
        for(var i = 0 ; i < msg.length; i++){
            if((msg[i].className=="error")){
                flag=-1;
            }
        }
        if(flag==-1){
            alert("请检查数据格式或是否存在")
        }else {
            alert("成功！")
            //去登录页
            //使用localStorage来存储提交后的信息,点击提交后能存储数据给登录页面来验证是否存在该用户。
            var obj = {
                username:username,
                pwd:pwd,
                phone:tel,
                email:email
            }
            var users = localStorage.getItem('users')?JSON.parse(localStorage.getItem('users')):[]
            users.push(obj)
            localStorage.setItem('users',JSON.stringify(users))
            var users = JSON.parse(localStorage.getItem('users'))
            for(var i=0;i<users.length;i++){
                console.log(localStorage.getItem('users'))
            }
            window.location.href='login.html'
        }
    }
}

function ajax(url, fnSucc, fnFaild)
{
    //1.创建Ajax对象
    var oAjax=null;
    if(window.XMLHttpRequest)
    {
        oAjax=new XMLHttpRequest();
    }
    else
    {
        oAjax=new ActiveXObject("Microsoft.XMLHTTP");
    }
    //2.连接服务器
    oAjax.open('GET', url, true);
    //3.发送请求
    oAjax.send();
    //4.接收服务器的返回
    oAjax.onreadystatechange=function ()
    {
        if(oAjax.readyState==4)	//完成
        {
            if(oAjax.status==200)	//成功
            {
                fnSucc(oAjax.responseText);
            }
            else
            {
                if(fnFaild)
                    fnFaild(oAjax.status);
            }
        }
    };
}
function inputBlur() {
    var name = this.name; // 获取输入框的name值
    var val = this.value; // 获取输入框的value值
    var tips = this.placeholder; // 获取输入框中的提示信息
    var tips_obj = this.parentNode.nextSibling.nextSibling.firstChild.nextSibling; // 获取提示信息显示的div元素对象
    var users = localStorage.getItem('users') ? JSON.parse(localStorage.getItem('users')) : []
    var flag=-1;
    // 1. 去掉两端的空白字符
    val = val.trim();
    // 2. 文本框内容为空，给出提示信息
    //console.log(tips_obj)
    if (!val) {
        /* 补充代码 */
        error(tips_obj, "数据不能为空!");
        return false;
    }

    // 3. 获取正则匹配规则和提示信息
    var reg_msg = getRegMsg(name, tips);
    // 4. 检测是否正则匹配
    if (reg_msg["reg"].test(val)) {
        if(name=="username"){
            for (var i = 0; i < users.length; i++) {
                //判断本地存储中的数据和用户输入的数据是否相等，若相当则可以跳转至主页，否则提示
                if(users[i].username==username.value){
                    flag=1;
                }
            }
            if(flag==1){
                error(tips_obj, "用户存在");
            }else {
                // 匹配成功，显示成功的提示信息
                //alert("success")
                success(tips_obj, reg_msg['msg']['success']);
            }
        }else {
            // 匹配成功，显示成功的提示信息
            //alert("success")
            success(tips_obj, reg_msg['msg']['success']);
        }


    } else {
        //alert("error")
        // 匹配失败，显示失败的提示信息
        error(tips_obj, reg_msg['msg']['error']);
    }
}
// 根据input的name值，设置正则规则及提示信息
function getRegMsg(name, tips) {
    var reg = msg = '';
    switch (name) {
        case 'username':
            reg = /^[a-zA-Z]{4,12}$/;
            msg = {
                'success': '用户名输入正确',
                'error': tips
            };
            break;
        case 'pwd':
            reg = /^[A-z|0-9|_]{6,20}$/;
            msg = {
                'success': '密码输入正确',
                'error': tips
            };
            break;
        case 'repwd':
            var con = document.getElementsByTagName('input')[1].value;
            reg = RegExp("^" + con + "$");
            msg = {
                'success': '两次密码输入正确',
                'error': '两次输入的密码不一致'
            };
            break;
        case 'tel':
            reg = /^1[3578]\d{9}$/;
            msg = {
                'success': '手机号码输入正确',
                'error': tips
            };
            break;
        case 'email':
            reg = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
            msg = {
                'success': '邮箱输入正确',
                'error': tips
            };
            break;
    }
    return {
        'reg': reg,
        'msg': msg
    };
}
// 成功
function success(obj, msg) {
    obj.className = 'success';
    obj.innerHTML = msg;
}
// 失败
function error(obj, msg) {
    obj.className = 'error';
    obj.innerHTML = msg + '，请重新输入';
}
